package com.kgc.utils;

import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.StringUtils;

import java.util.UUID;

/**
 * 加密类
 */
public class CodecUtils {

    /**
     * MD5加密
     *
     * @param data
     * @param salt
     * @return
     */
    public static String md5Hex(String data, String salt) {
        if (StringUtils.isBlank(salt)) {
            salt = data.hashCode() + "";
        }
        return DigestUtils.md5Hex(salt + DigestUtils.md5Hex(data));
    }

    /**
     * 校对密码是否匹配，匹配则返回true
     *
     * @param oldPassword
     * @param newPassword
     * @param salt
     * @return
     */
    public static boolean match(String oldPassword, String newPassword, String salt) {
        // 1.新密码加盐
        newPassword = md5Hex(newPassword, salt);
        // 2.验证旧密码与新密码是否一致
        return oldPassword.equals(newPassword);
    }

    /**
     * 生成随机盐
     *
     * @return
     */
    public static String generateSalt() {
        return StringUtils.substringAfterLast(UUID.randomUUID().toString(), "-");
    }


    public static void main(String[] args) {
        String salt = generateSalt();
        System.out.println("salt = " + salt);
        String password = CodecUtils.md5Hex("123456", salt);
        System.out.println("password = " + password);

    }
}
